home *** CD-ROM | disk | FTP | other *** search
/ Mac Mania 4 / MacMania 4.toast / / Sound / SoundEffects 0.9.2 / SoundEffects Developer’s Kit / Interfaces / Glue.c next >
C/C++ Source or Header  |  1994-11-21  |  2KB  |  79 lines

  1. #include "Glue.h"
  2. #include "ModA4Globals.h"
  3.  
  4.  
  5. #if defined(powerc) || defined(__powerc)    // we’re running on a Power Mac
  6.     ProcInfoType    __procinfo = kPascalStackBased
  7.         | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  8.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSType)))
  9.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(ModParamsPtr)))
  10.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(GluePtr)))
  11.         | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(GluePtr)));
  12. #endif
  13.  
  14. #if defined(powerc) || defined(__powerc)
  15.     #define    availGlue    gluePPC
  16. #else
  17.     #define    availGlue    glue68k
  18. #endif
  19.  
  20.  
  21. pascal OSErr main(OSType message, ModParamsPtr modInfo, GluePtr glue68k, GluePtr gluePPC)
  22. {
  23.     ModSettingsHandle    prefs = 0L;
  24.     long                world;
  25.     OSErr                error;
  26.     
  27.     MAIN_SETUP_GLOBALS(world);
  28.     
  29.     switch (message)
  30.     {
  31.         case kMsgRun:
  32.             error = GetModSettings(modInfo, availGlue, &prefs);
  33.             if (error == noErr)
  34.                 error = effect(modInfo, availGlue, &prefs);
  35.             break;
  36.         case kMsgSettings:
  37.             error = settings(modInfo, availGlue, &prefs);
  38.             break;
  39.         case kMsgSettingsRun:
  40.             error = settings(modInfo, availGlue, &prefs);
  41.             if (error == noErr || error == kModHasNoSettings)
  42.                 error = effect(modInfo, availGlue, &prefs);
  43.             break;
  44.         case kMsgHeadersVers:
  45.             *(long *)glue68k = kHeadersVersion;
  46.             error = noErr;
  47.             break;
  48.         case kMsgAbout:
  49.             error = about((ModAboutPtr)modInfo);
  50.             break;
  51.         default:
  52.             error = kModUnknownMessage;
  53.     }
  54.     
  55.     if (prefs)
  56.         DisposHandle((Handle)prefs);
  57.     
  58.     MAIN_RESTORE_GLOBALS(world);
  59.     
  60.     return error;
  61. }
  62.  
  63.  
  64. // GetModSettings and settings return, in prefs, either nil or a valid handle.
  65. // effect must take care of disposing it.
  66.  
  67.  
  68. long SetupEffectWorld(void)
  69. {
  70.     long    world;
  71.     
  72.     TEMP_SETUP_GLOBALS(world);
  73.     return world;
  74. }
  75.  
  76. void RestoreEffectWorld(long world)
  77. {
  78.     TEMP_RESTORE_GLOBALS(world);
  79. }